Verifying Catamorphism-Based Contracts using Constrained Horn Clauses
نویسندگان
چکیده
We address the problem of verifying that functions a program meet their contracts, specified by pre/postconditions. follow an approach based on constrained Horn clauses (CHCs) which verification is reduced to checking satisfiability set derived from given and contracts. consider programs manipulate algebraic data types (ADTs) class contracts catamorphisms, is, defined simple recursion schemata ADTs. show several examples state-of-the-art CHC tools are not effective at solving problems obtained direct translation into CHCs. To overcome this difficulty, we propose transformation technique removes ADT terms CHCs derives new sets work basic sorts only, such as integers booleans. Thus, when using there no need for induction rules prove sound, if satisfiable, then so original set. also always terminates catamorphisms. Finally, present experimental results implementation our many non-trivial manipulating programs.
منابع مشابه
Verifying Relational Program Properties by Transforming Constrained Horn clauses
We present a method for verifying relational program properties, that is, properties that relate the input and the output of two programs. Our verification method is parametric with respect to the definition of the semantics of the programming language in which the programs are written. That definition consists of a set Int of constrained Horn clauses (CHC) that encode the interpreter of the pr...
متن کاملSynchronizing Constrained Horn Clauses
Simultaneous occurrences of multiple recurrence relations in a system of non-linear constrained Horn clauses are crucial for proving its satisfiability. A solution of such system is often inexpressible in the constraint language. We propose to synchronize recurrent computations, thus increasing the chances for a solution to be found. We introduce a notion of CHC product allowing to formulate a ...
متن کاملSolving Constrained Horn Clauses using Interpolation
We present an interpolation-based method for symbolically solving systems of constrained Horn clauses. The method can be used to solve for unknown predicates in the verification conditions of programs. Thus, it has a variety of applications, including including model checking of recursive and threaded programs. The method is implemented in tool called Duality, which we evaluate using device dri...
متن کاملSolving Constrained Horn Clauses Using Dependence-Disjoint Expansions
Recursion-free Constrained Horn Clauses (CHCs) are logicprogramming problems that formulate verifying safety of programs with bounded iteration and recursion. They both formulate bounded verification problems and are generated by solvers that attempt to verify safety of unbounded iterative or recursive systems. Efficient solvers of recursion-free systems reduce the problem to solving a series o...
متن کاملVerification of Time-Aware Business Processes Using Constrained Horn Clauses
We present a method for verifying properties of time-aware business processes, that is, business process where time constraints on the activities are explicitly taken into account. Business processes are specified using an extension of the Business Process Modeling Notation (BPMN) and durations are defined by constraints over integer numbers. The definition of the operational semantics is given...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Theory and Practice of Logic Programming
سال: 2022
ISSN: ['1471-0684', '1475-3081']
DOI: https://doi.org/10.1017/s1471068422000175